อัพเดทบริการ AWS Certificate Manager ในปี 2024
บทความนี้แปลมาจากบทความที่เป็นภาษาญี่ปุ่นที่ชื่อว่า AWS入門ブログリレー2024 〜AWS Certificate Manager編〜 โดยเจ้าของบทความนี้คือ คุณ 荒平 祐次(arap)
ภาพรวมของ AWS Certificate Manager (ACM)
ต่อไปนี้จะแนะนำภาพรวมของ ACM โดยรวมเทคโนโลยีที่เกี่ยวข้องอื่นๆ นอกเหนือจาก AWS ด้วย
ใบรับรอง SSL/TLS
SSL (Secure Sockets Layer) และ TLS (Transport Layer Security) เป็น protocol สำหรับการส่งและรับข้อมูลอย่างปลอดภัยบนอินเทอร์เน็ต เดิมที SSL เป็นที่แพร่หลาย แต่ปัจจุบัน TLS ซึ่งพัฒนาขึ้นจาก SSL ได้กลายเป็น protocol หลักไปแล้ว
เมื่อพูดถึง "SSL" โดยทั่วไปมักจะรวมถึง "TLS" ด้วย ดังนั้นในการเขียนมักจะใช้คำว่า SSL/TLS
หลักๆ แล้วจะใช้ในการเข้ารหัสการสื่อสารระหว่าง server และ client ของผู้ใช้
โดยจะทำการแลกเปลี่ยนและตรวจสอบใบรับรองระหว่าง server และ client ถ้าโดเมนของปลายทางสื่อสารและโดเมนของใบรับรองตรงกัน ก็จะทำการแลกเปลี่ยน key ร่วมกัน การใช้ key ร่วมกันนี้เพื่อเข้ารหัสและถอดรหัสเนื้อหาการสื่อสารจะช่วยป้องกันการดูข้อมูลโดยไม่ได้รับอนุญาตจากบุคคลที่สาม
ใน AWS ณ เวลาที่เขียนนี้ รองรับ TLS เวอร์ชัน 1.2 และบางบริการก็รองรับเวอร์ชัน 1.3 (ไม่แนะนำให้ใช้เวอร์ชันต่ำกว่า TLS 1.2) ความแตกต่างคือ ตามที่บล็อกด้านล่างระบุไว้ การแลกเปลี่ยนข้อมูลระหว่าง server และ client (handshake) จะถูกตัดออกบางส่วนก่อนที่จะส่งข้อมูลจริง
ใบรับรอง DV, OV และ EV
ใบรับรองถูกแบ่งตามระดับการรับรอง ได้แก่ Domain Validation (DV), Organization Validation (OV) และ Extended Validation (EV)
สำหรับการออกใบรับรองใน ACM (AWS Certificate Manager) รองรับเฉพาะการรับรองโดเมน (DV) เท่านั้น แม้ว่าเว็บไซต์ส่วนใหญ่จะใช้ใบรับรอง DV ได้โดยไม่มีปัญหา แต่ในบางกรณีอาจต้องใช้ใบรับรองที่ออกโดยหน่วยงานรับรองภายนอก
แต่หลังจากออกใบรับรองแล้ว สามารถนำเข้าและจัดการใน ACM ได้ แต่ฟีเจอร์บางอย่าง เช่น การต่ออายุอัตโนมัติ อาจถูกจำกัด (สำหรับการออกใบรับรองภายนอก ACM)
เพื่อความเข้าใจโดยสังเขป จะทำการระบุในรูปแบบตาราง
รายการ | DV (Domain Validation) | OV (Organization Validation) | EV (Extended Validation) |
---|---|---|---|
ระดับการรับรอง | ยืนยันความเป็นเจ้าของโดเมน | ยืนยันความเป็นเจ้าของโดเมน + ยืนยันองค์กร | ยืนยันความเป็นเจ้าของโดเมน + ยืนยันรายละเอียดขององค์กร |
ความเร็วในการออกใบรับรอง | ไม่กี่นาทีถึงไม่กี่ชั่วโมง | ไม่กี่วัน | ไม่กี่สัปดาห์ |
ค่าใช้จ่าย | ต่ำ | กลาง | สูง |
ความน่าเชื่อถือ | ต่ำ | กลาง | สูง |
การรองรับของเบราว์เซอร์ | ไอคอน SSL/TLS ปกติ | ไอคอน SSL/TLS ปกติ | อาจแสดงชื่อองค์กรในแถบ address |
ตัวอย่างการใช้งาน | เว็บไซต์ทุกขนาด | เว็บไซต์ของธุรกิจขนาดเล็กและขนาดกลาง, อินทราเน็ต | เว็บไซต์ของบริษัทขนาดใหญ่, สถาบันการเงิน |
กระบวนการรับรอง | ยืนยันความเป็นเจ้าของโดเมน | ยืนยันความเป็นเจ้าของโดเมน + ยืนยันการมีอยู่ขององค์กร | ยืนยันความเป็นเจ้าของโดเมน + การตรวจสอบประวัติรายละเอียดขององค์กร |
เนื้อหาในใบรับรอง | ชื่อโดเมน | ชื่อโดเมน + ข้อมูลองค์กร | ชื่อโดเมน + ข้อมูลองค์กร + ข้อมูลทางกฎหมาย (เช่น หมายเลขบริษัท) |
การนำเข้าใน ACM | สามารถทำได้ | สามารถทำได้ | สามารถทำได้ |
การออกใบรับรองและการต่ออายุอัตโนมัติใน ACM | สามารถทำได้ | ไม่สามารถทำได้ | ไม่สามารถทำได้ |
เหตุผลในการใช้ ACM (AWS Certificate Manager)
กลับมาที่หัวข้อหลัก เรามาดูประโยชน์ที่ผู้ใช้จะได้รับจากการใช้ ACM (AWS Certificate Manager)
ประโยชน์หลักๆ มีดังนี้
- การปกป้องเว็บไซต์และการเสริมสร้างความปลอดภัย
- ลดเวลาที่เว็บไซต์ไม่สามารถเข้าถึงได้และลดภาระในการจัดการด้วยการต่ออายุใบรับรองอัตโนมัติ
- การบริหารจัดการรวมศูนย์ใน AWS
คงไม่ต้องอธิบายมากนัก การติดตั้งใบรับรอง SSL/TLS จะช่วยปกป้องการสื่อสารได้
ปกติแล้ว เมื่อใบรับรองหมดอายุ เบราว์เซอร์จะแสดงคำเตือน การตั้งค่าการต่ออายุอัตโนมัติจะช่วยป้องกันการลดลงของการเข้าชมและการเสื่อมลงของคะแนน SEO ที่เกิดจากการลืมต่ออายุใบรับรอง และยังช่วยลดภาระในการจัดการเว็บไซต์ด้วย นอกจากนี้ การต่ออายุใบรับรองจะไม่ทำให้การสื่อสารถูกขัดจังหวะ
สำหรับการใช้ใบรับรอง DV สามารถรวมการออกและการต่ออายุไว้ในแพลตฟอร์มเดียว (AWS) ได้ ในกรณีของใบรับรอง OV/EV แม้จะต้องนำเข้าใบรับรอง ก็ยังสามารถตรวจสอบได้ว่าใบรับรองใดต้องต่ออายุเมื่อไร ผ่านแดชบอร์ด
สิ่งที่ AWS Certificate Manager (ACM) สามารถทำได้
ACM เป็นบริการที่มีการจัดการที่สามารถออก, จัดการและต่ออายุใบรับรองได้
การออกใบรับรอง
ใน ACM ตามที่กล่าวไปแล้ว สามารถออกใบรับรองการรับรองโดเมน (DV) ได้ วิธีการยืนยันโดเมนมีให้เลือก 2 วิธี แม้ว่าจะไม่พบในเอกสาร แต่ในคอนโซลมีการแนะนำให้ใช้การตรวจสอบด้วย DNS
1. การตรวจสอบด้วยอีเมล
วิธีการรับรอง
- ส่งอีเมลยืนยันไปยังเจ้าของโดเมน
ขั้นตอนการดำเนินการ
- รับอีเมลยืนยัน
- คลิกลิงก์ในอีเมลเพื่อเสร็จสิ้นการยืนยัน
เวลาที่ใช้
- ไม่กี่นาทีถึงไม่กี่ชั่วโมง
ตัวอย่างการใช้งาน
- ในกรณีที่รับอีเมลได้ง่าย
ข้อดี
- การตรวจสอบรวดเร็วและง่าย
ข้อเสีย
- อาจมีปัญหาในการรับอีเมล (รวมถึงในกรณีการต่ออายุ)
- อีเมลต้องเป็นรูปแบบเฉพาะ
โดเมนที่ใช้ได้
- อีเมลเฉพาะ (admin@, administrator@, hostmaster@, postmaster@, webmaster@)
การทำให้การต่ออายุเป็นอัตโนมัติ
- ยาก (ต้องตรวจสอบอีเมล) *อ้างอิง: Automating email validation
2. การตรวจสอบด้วย DNS (แนะนำ)
วิธีการรับรอง
- เพิ่มเรคคอร์ด DNS เพื่อยืนยัน
ขั้นตอนการดำเนินการ
- รับเรคคอร์ด DNS ที่ให้มา
- เพิ่มเรคคอร์ดในการตั้งค่า DNS ของโดเมน
เวลาที่ใช้
- ไม่กี่นาทีถึงไม่กี่ชั่วโมง
ตัวอย่างการใช้งาน
- ในกรณีที่สามารถเข้าถึงการตั้งค่า DNS ได้
ข้อดี
- สามารถทำให้เป็นอัตโนมัติได้
- ยืนยันความเป็นเจ้าของโดเมนได้อย่างแน่นอน
ข้อเสีย
- จำเป็นต้องเปลี่ยนแปลงการตั้งค่า DNS
- อาจใช้เวลาในการเผยแพร่ข้อมูล (propagation)
โดเมนที่ใช้ได้
- ทุกโดเมน (ในกรณีที่สามารถเข้าถึงการตั้งค่า DNS ได้)
การทำให้การต่ออายุเป็นอัตโนมัติ
- ง่าย (สามารถทำให้เป็นอัตโนมัติได้ด้วยสคริปต์หรือเครื่องมือ)
ในกรณีของการตรวจสอบทางอีเมล จำเป็นต้องยืนยันอีเมลเมื่อมีการต่ออายุใบรับรอง การตรวจสอบทาง DNS จะเป็นทางเลือกที่ดีกว่าในแง่ของการพึ่งพาบุคคลเพื่อตรวจสอบอีเมล
(การตรวจสอบทาง DNS สามารถทำให้การต่ออายุอัตโนมัติได้หากมีเรคคอร์ด CNAME อยู่)
นอกจากนี้ ควรทราบว่าใบรับรองที่สร้างด้วยการตรวจสอบทางอีเมลไม่สามารถเปลี่ยนไปใช้การตรวจสอบทาง DNS ได้
การจัดการและการต่ออายุใบรับรอง
การจัดการใบรับรองทำได้ผ่านแดชบอร์ดของ ACM ใบรับรองที่ออกโดย ACM และใบรับรองที่นำเข้า สามารถตรวจสอบได้ในหน้าจอเดียว
หากใบรับรองออกโดย ACM และเป็นใบรับรองที่อยู่ในขอบเขตการต่ออายุอัตโนมัติ ในส่วนของคอลัมน์ "Renewal eligibility" จะแสดงว่า "Eligible"
ในคอลัมน์ "In use" สามารถตรวจสอบได้ว่าใบรับรองถูกใช้งานในบริการที่จัดการโดย AWS หรือไม่ ซึ่งส่วนใหญ่จะหมายถึง CloudFront, Elastic Load Balancing, และ API Gateway (Services integrated with AWS Certificate Manager)
ตามที่จะแจ้งในภายหลัง บริการที่รวมอยู่ในรายการนี้จะไม่รวมถึง EC2
เพื่อให้ทราบถึงวันหมดอายุของใบรับรอง สามารถใช้ EventBridge หรือ CloudWatch เพื่อส่งการแจ้งเตือนได้
ในคอนโซล ACM ตรง "Manage expiry events" สามารถตั้งค่าจำนวนวันที่จะเกิดเหตุการณ์แจ้งเตือนก่อนวันหมดอายุได้ และจะมีการแจ้งเตือนทุกวันจนกว่าจะถึงวันหมดอายุ
อ้างอิง : How can I be notified when my ACM imported certificates are near expiration?
ข้อควรระวัง
ใน ACM ไม่สามารถติดตั้งใบรับรองโดยตรงบนอินสแตนซ์ EC2 ได้ จำเป็นต้องใช้ Application Load Balancer (ALB) เป็นตัวกลาง หรือออกใบรับรองผ่าน AWS Private Certificate Authority (PCA) (เช่น ในกรณีที่ไม่สามารถใช้ Let's Encrypt ได้เนื่องจากข้อกำหนดด้านความสอดคล้องและต้องใช้บริการที่จัดการโดย AWS)
ดังนั้น หากไม่ใช้ PCA หรือหน่วยงานรับรองภายนอก จะไม่สามารถทำ TLS termination บน EC2 ได้
นอกจากนี้ AWS PCA อาจมีค่าใช้จ่ายสูง (ประมาณ 400 USD/เดือน) แต่มีโหมดที่จำกัดอายุใบรับรองไว้ที่ 7 วัน ซึ่งสามารถลดค่าใช้จ่ายลงเหลือ 50 USD/เดือน อย่างไรก็ตาม เนื่องจากออกแบบมาเพื่อผลิตภัณฑ์ VDI (Virtual Desktop Infrastructure) บริการที่รองรับใน AWS มีเพียง AppStream และ WorkSpaces เท่านั้น จึงอาจไม่เหมาะกับการใช้งานดังกล่าว
สรุป
AWS Certificate Manager เป็นบริการที่ออกใบรับรอง เพื่อให้สามารถใช้ HTTPS protocol ได้ นอกจากนี้ยังฟรีและเหมาะกับใช้ร่วมกับ resource ของ AWS และเพื่อให้เป็นจุดศูนย์กลางทำให้ง่ายต่อการจัดการ
บทความต้นฉบับ
บทความที่เกี่ยวข้อง
- การตั้งค่า Free SSL กับ DNS ใน CloudFront โดยใช้ ACM กับ Route 53
- Amazon ALB (Application Load Balancer) คืออะไร? การแนะนำฟังก์ชันล่าสุดของ AWS
- วิธีรับมือเมื่อ ACM certificate ที่สร้างใหม่ ไม่เปลี่ยนจากสถานะ Pending validation
- [AWS Technical Support Note] จะทำอย่างไรถ้าการต่ออายุใบรับรอง ACM certificate โดยอัตโนมัติที่ใช้ DNS verification ล้มเหลว